package server;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.security.PublicKey;

public interface ManagerInf extends Remote {

    public int newGame(String gameName) throws RemoteException;

    public boolean isGameFinished(int game) throws RemoteException;

    public int joinAGame(String player, int game) throws RemoteException;

    public Map getAMap(int player, int game) throws RemoteException;

    public void hitMap(byte[] bytes,int attacker,int gameNum) throws RemoteException;

    public Ship[] getGameShips(int gamenum) throws RemoteException;

    public boolean constructMap(int[] points, int player, int game) throws RemoteException;

    public String getPlayerName(int player, int game) throws RemoteException;

    public int getPlayersNumber(int game) throws RemoteException;

    public int[][] getMapArray(int player, int game) throws RemoteException;

    public String[] getPlayersName(int game) throws RemoteException;

    public void leaveAGame(int player, int gamenum) throws RemoteException;

    public String[] getGamesName() throws RemoteException;

    public int getPlayerScore(int player, int game) throws RemoteException;

    public boolean isPlayerLose(int player, int game) throws RemoteException;

    public void AssignPublicKey(PublicKey p, int player, int game) throws RemoteException;

    public PublicKey getServerPublicKey() throws RemoteException;

    public byte[] genSharedKey(int player, int game) throws RemoteException;

    public void setfinishConstruction(boolean b, int player, int game) throws RemoteException;

    public boolean getfinishConstruction(int player, int game) throws RemoteException;
}
